#include "fun_runtime.h"
#include <string.h>


/**
 * 功能：   获取当前时间戳
 * 参数：
 * 返回值： 当前时间戳-10位
 * 备注：   测试程序运行时间，只需在程序开始及结束调用此函数
 *         返回值的差值就是运行时间，或者用 difftime()来获取运行时间 精度：秒
*/
time_t get_timestamp()
{
    time_t t;
    time(&t);
    return t;
}

time_t get_timestamp_difftime(time_t start_time, time_t end_time)
{
    return end_time - start_time;
}

/**
 * 功能：   获取系统节拍值
 * 参数：
 * 返回值： 具体节拍值
 * 
*/
time_t get_clock_time()
{
    return clock();
}
/**
 * 功能：   获取系统节拍值的差值
 * 参数：   start_time 第一次获取的节拍值
 *         end_time   结束获取的节拍值
 * 返回值： 两次之间经过的时间，单位（微秒 us）
 * 
*/
time_t get_clock_difftime(time_t start_time, time_t end_time)
{
    return (time_t)((double)(end_time-start_time)/CLOCKS_PER_SEC * 1000000);
}

/**
 * 功能：   获取时间值
 * 参数：
 * 返回值： 时间结构体
 * 
*/
struct timeb get_tb_time()
{
    struct timeb tb;
    memset(&tb,0,sizeof(struct timeb));
    ftime(&tb);
    return tb;
}
/**
 * 功能：   获取时间差值
 * 参数：   start_time 第一次获取的值
 *         end_time   结束获取的节拍值
 * 返回值： 两次之间经过的时间，单位（毫秒 ms）
 * 
*/
time_t get_tb_difftime(struct timeb *start_time ,struct timeb *end_time )
{
    return (end_time->time-start_time->time)*1000 + end_time->millitm - start_time->millitm;
}